/**
 * redux代码优化
 * 1.将派发的acton生成过程放到一个actionCreators函数中
 * 2.将定义的所有actionCreators的函数，放到一个独立的文件中：actionCreators.js
 * 3.actionCreators 和 reducer函数中使用字符串常量是一致的，所以将常量抽取到一个独立constants的独立文件中
 * 4.将reducer和默认值(initialState)放到一个独立的reducer.js
 * 
 */


const store = require("./store")
const { changeNameAction, addNumberAction } = require("./store/actionCreators")

const unsubscribe = store.subscribe(() => {
    console.log("订阅数据的变化：", store.getState())
})

// actionCreators：帮助我们创建action
// const changeNameAction = (name) => ({
//     type: "change_name",
//     name,
// })

// const addNumberAction = (counter) => ({
//     type: "add_number",
//     counter,
// })

// 修改store中的数据：必须action
store.dispatch(changeNameAction("牢大"))
store.dispatch(changeNameAction("huashan"))

store.dispatch(addNumberAction(10))
store.dispatch(addNumberAction(20))
store.dispatch(addNumberAction(30))
store.dispatch(addNumberAction(100))
unsubscribe()
